#*******************************************************************************
# $Id: Makerules.env,v 2.30.208.4 2009-01-27 01:22:16 Exp $
# Top-level Makerules for defining environment variables
# can be included by anyone doing software at Epigram
#*******************************************************************************

# HOSTOS is either unix or Windows_NT.
# HOSTENV differentiates HOSTOS and is either freebsd, sun4, or Windows_NT.
# This refers to the *BUILD* environment. All environments use "GNU C" 
# except Windows_NT which may use "GNU C" or "Microsoft C".

ifndef	HOSTENV
    # Figure what type of host we are in. 
    UNAME = $(shell uname)

    ifneq ($(findstring "$(UNAME)", "FreeBSD" "NetBSD"), )
	HOSTENV = freebsd
	HOSTOS = unix
    else
	ifneq ($(findstring "$(UNAME)", "sun4" "SunOS"), )
	    HOSTENV = sun4
	    HOSTOS = unix
	else
	    ifeq ($(UNAME), Linux)
		HOSTENV = linux
		HOSTOS = unix
	    else
		ifneq ($(findstring "$(UNAME)", "CYGWIN32_NT" "CYGWIN32/NT" "i386" "CYGWIN_NT-4.0" "CYGWIN_NT-5.0" "CYGWIN_NT-5.1" "CYGWIN_NT-5.2" "i586" "i686"), )
		    HOSTENV = Windows_NT
		    HOSTOS = Windows_NT
		else
		    ifeq ($(UNAME), Darwin)
			HOSTENV = macos
			HOSTOS = unix
		    else	
		    	HOSTENV = unknown
		    	HOSTOS = unknown
		    endif
		endif
	    endif
	endif
    endif
endif
# In case we just defined them, make sure they are known
export HOSTENV
export HOSTOS
	
# TARGETENV is one of freebsd, sun4, linux, linuxarm, linuxmips, android, cygwin32, win32, or macos
# TARGETENV defaults to HOSTENV unless HOSTENV is Windows_NT, in
# which case it defaults to win32.

ifndef	TARGETENV
    ifeq ($(HOSTENV), Windows_NT)
	TARGETENV = win32
    else
        TARGETENV = $(HOSTENV)
    endif
endif
export TARGETENV

# TARGETOS defaults to HOSTOS in most cases
ifneq ($(findstring "$(TARGETENV)", "freebsd" "linux" "linuxarm" "linuxarm_le" "android" "linuxarm_omap" "linuxmips" "sun4" "cygwin32" "win32" "macos"), )
    TARGETOS = $(HOSTOS)
endif
ifeq	($(TARGETENV), bcmmips)
    TARGETOS = bcmmips
endif
ifeq	($(TARGETENV), klsi)
    TARGETOS = klsi
endif
ifeq	($(TARGETENV), nucleusarm)
    TARGETOS = nucleus
endif
ifndef TARGETOS
    TARGETOS = unknown
endif
export TARGETOS

# TARGETARCH is the target processor architecture
# Currently valid values are: x86, x86_mmx, sparc, unknown, or a list of any
# of the valid values.
# For the x86* family, a generic x86 is assuemd if not otherwise specified
# Order is important since "linux" matches both linuxmips and linux.
ifndef TARGETARCH
    ifneq ($(findstring "$(TARGETENV)", "android"), )
	TARGETARCH = arm_android
    endif
    ifneq ($(findstring "$(TARGETENV)", "linuxarm_le"), )
	TARGETARCH = arm_le
    endif
    ifneq ($(findstring "$(TARGETENV)", "linuxarm" "nucleusarm"), )
	TARGETARCH = arm
    endif
    ifneq ($(findstring "$(TARGETENV)", "linuxarm_omap"), )
	TARGETARCH = arm_omap
    endif
    ifneq ($(findstring "$(TARGETENV)", "bcmmips" "linuxmips"), )
	TARGETARCH = mips
    endif
    ifneq ($(findstring "$(TARGETENV)", "sun4"), )
	TARGETARCH = sparc
    endif
    ifneq ($(findstring "$(TARGETENV)", "freebsd" "linux" "cygwin32" "win32"), )
	TARGETCPU = $(shell uname -m)
	ifneq ($(findstring "$(TARGETCPU)", "sparc" "sparc64"), )
		TARGETARCH = $(TARGETCPU)
	else
		TARGETARCH = x86_mmx
	endif
    endif
    ifeq	($(TARGETENV), macos)
	TARGETCPU = $(shell uname -p)
	ifneq ($(findstring "$(TARGETCPU)", "powerpc"), )
		TARGETARCH = PPC
	else
		TARGETARCH = x86
	endif
    endif
    ifeq	($(TARGETENV), klsi)
	TARGETARCH = klsi
    endif
    ifndef TARGETARCH
	TARGETARCH = unknown
    endif
endif
export TARGETARCH

# TARGET_TYPE is either "all" or one or more of: float64, float32, int16
# default is int16.  "all" will get expanded into a list of all possible types
ifndef  TARGET_TYPE
	TARGET_TYPE = int16
endif
        
ifeq ($(TARGET_TYPE), all)
	TARGET_TYPE = int16 float32 float64
endif
export TARGET_TYPE
